package com.eonmind.user.service;

import com.eonmind.common.contract.data.response.PageResponse;
import com.eonmind.user.contract.dto.UserInfoData;
import com.eonmind.user.dto.UserNoticeDto;
import jakarta.validation.constraints.NotBlank;

import java.util.List;

public interface INoticeService {
    List<UserNoticeDto.UserNoticePreferenceResponse> userNoticePreference(UserInfoData userInfoData);

    Boolean updateUserNoticePreference(UserInfoData userInfoData, UserNoticeDto.UserNoticePreferenceUpdateRequest userNoticePreferenceUpdateRequest);

    PageResponse<UserNoticeDto.UserNoticeData> getUserNoticePage(UserInfoData userInfoData, UserNoticeDto.UserNoticePageRequest userNoticePageRequest);

    Boolean delUserNotice(UserInfoData userInfoData, UserNoticeDto.UserNoticeDelRequest userNoticeDelRequest);

    Boolean updateUserNoticeStatus(UserInfoData userInfoData, UserNoticeDto.UserNoticeStatusUpdateRequest userNoticeStatusUpdateRequest);

    void initUserNoticePreference(@NotBlank(message = "用户名不能为空") String username);
}
